from node import *


def logistic_regression(n):
    """
    构造一个逻辑回归模型的计算图，特征数量为 n 。
    """

    # x 是一个 n 维向量，不初始化，不参与训练
    x = Variable((n, 1), init=False, trainable=False)

    # w 是一个 2 x n 矩阵，随机初始化，参与训练
    w = Variable((2, n), init=True, trainable=True)

    # b 是一个 2 维向量量，随机初始化，参与训练
    b = Variable((2, 1), init=True, trainable=True)

    # 求 w 和 x 的内积，加上偏置
    logits = Add(MatMul(w, x), b)

    return x, logits
